require 'byebug'

class DefPrivateClassMethod
  def self.func1
    puts 'func1 is a class public method'
  end

  public_class_method def self.func2
    puts 'func2 is a class public method'
  end

  private_class_method def self.func3
    puts 'func3 is a class private method'
  end

  def self.func4
    puts 'func4 is a class private method'
  end
  private_class_method :func4

  class << self
    def func5
      puts 'func5 is a class private method'
    end

    private

    def func6
      puts 'func6 is a class private method'
    end
  end
end

byebug
a = 1
b = 2
